#pragma once

#include "Vector3d.h"

class PointParticle {
public:
    Vector3d pos;
    Vector3d vel;
    Vector3d acc;

    PointParticle();
    PointParticle(const Vector3d& pos);
    PointParticle(const Vector3d& pos, const Vector3d& vel);

    //Performs a forward Euler integration step, then sets acceleration to zero.
    void eulerUpdate(double dt);

    //Performs a Velocity Verlet integration step, then sets acceleration to zero.
    void velocityVerletUpdate(double dt);

    Vector3d hookesLawForce(double k, double zeta, double restDist, PointParticle& other) const;
    void hookesLaw(double k, double zeta, double restDist, PointParticle& other);
};
